﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
namespace 文件传PDA工具
{
    public partial class Form1 : Form
    {
        public DataTable _table { get; private set; }
        private DataTable 参数表 { get; set; }
        private void 参数表初始化() 
        {
            if (参数表 == null)
                参数表 = new DataTable();
            if (!参数表.Columns.Contains("服务器")) 参数表.Columns.Add("服务器", typeof(string));
            if (!参数表.Columns.Contains("端口")) 参数表.Columns.Add("端口", typeof(string));
            if (!参数表.Columns.Contains("账号")) 参数表.Columns.Add("账号", typeof(string));
            if (!参数表.Columns.Contains("密码")) 参数表.Columns.Add("密码", typeof(string));
            if (!参数表.Columns.Contains("文件夹")) 参数表.Columns.Add("文件夹", typeof(string));
            if (!参数表.Columns.Contains("清理数据备份")) 参数表.Columns.Add("清理数据备份", typeof(string));
            if (!参数表.Columns.Contains("上传wince")) 参数表.Columns.Add("上传wince", typeof(string));
            if (!参数表.Columns.Contains("上传xmlce")) 参数表.Columns.Add("上传xmlce", typeof(string));
            if (!参数表.Columns.Contains("上传print")) 参数表.Columns.Add("上传print", typeof(string));
            if (!参数表.Columns.Contains("上传info")) 参数表.Columns.Add("上传info", typeof(string));
            if (!参数表.Columns.Contains("测试版文件夹")) 参数表.Columns.Add("测试版文件夹", typeof(string));
            if (!参数表.Columns.Contains("正式版文件夹")) 参数表.Columns.Add("正式版文件夹", typeof(string));
            if (!参数表.Columns.Contains("传PDA")) 参数表.Columns.Add("传PDA", typeof(string));
            if (!参数表.Columns.Contains("发布测试版")) 参数表.Columns.Add("发布测试版", typeof(string));
            if (!参数表.Columns.Contains("发布正式版")) 参数表.Columns.Add("发布正式版", typeof(string));
            if (!参数表.Columns.Contains("测试版转正式")) 参数表.Columns.Add("测试版转正式", typeof(string));
            if (参数表.Rows.Count == 0)
            {
                DataRow 新行 = 参数表.NewRow();
                参数表.Rows.Add(新行);
            }
        }
        public DataRow 参数 
        {
            get
            {
                参数表初始化();
                return 参数表.Rows[0];
            }
            set
            {
                参数表初始化();
                foreach (DataColumn col in value.Table.Columns)
                {
                    if (!参数表.Columns.Contains(col.ColumnName)) 参数表.Columns.Add(col.ColumnName, typeof(string));
                    参数表.Rows[0][col.ColumnName] = value[col.ColumnName];
                }
            }
        }
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            _table = new DataTable();
            _table.Columns.Add("项目名称", typeof(string));
            _table.Columns.Add("项目内容", typeof(string));
            DataTable loaded = YZZ.InformationController.LoadTable(System.Threading.Thread.GetDomain().BaseDirectory + "Data.json");
            if (loaded != null && loaded.Rows.Count > 0)
                _table = loaded.Copy();
            YZZ.InformationModel.加载配置(this);
            Text_Develop.Click += Text_Deploy_Click;
            Text_Release.Click += Text_Deploy_Click;
        }

        private void Text_Deploy_Click(object sender, EventArgs e)
        {
            switch (获取文件夹.ShowDialog())
            {
                case DialogResult.OK:
                    ((TextBox)sender).Text = 获取文件夹.SelectedPath;
                    break;
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            try
            {
                YZZ.InformationModel.写入配置(this);
                YZZ.InformationController.SaveTable(System.Threading.Thread.GetDomain().BaseDirectory + "Data.json", _table);
                ProgressForm 进度窗体 = new ProgressForm(this.参数);
                DialogResult result = 进度窗体.ShowDialog();
                switch (result)
                {
                    default:
                        break;
                }
            }
            catch(Exception 错误)
            {
                MessageBox.Show(错误.Message);
            }
        }

        protected override void OnClosing(CancelEventArgs e)
        {
            YZZ.InformationModel.写入配置(this);
            YZZ.InformationController.SaveTable(System.Threading.Thread.GetDomain().BaseDirectory + "Data.json", _table);
        }

        internal void ResetTable()
        {
            _table.Rows.Clear();
        }

        //private void button1_Click(object sender, EventArgs e)
        //{
        //    try
        //    {
        //        YZZ.FileHelperTemplate.CopyFile(System.Environment.CurrentDirectory + "\\wince.db", Text_Develop.Text + "\\wince.db");
        //        YZZ.FileHelperTemplate.CopyFile(System.Environment.CurrentDirectory + "\\xmlce.db", Text_Develop.Text + "\\xmlce.db");
        //        YZZ.FileHelperTemplate.CopyFile(System.Environment.CurrentDirectory + "\\print.db", Text_Develop.Text + "\\print.db");
        //        YZZ.FileHelperTemplate.CopyFile(System.Environment.CurrentDirectory + "\\info.db", Text_Develop.Text + "\\info.db");
        //        MessageBox.Show("复制完成！", "发布", MessageBoxButtons.OK,MessageBoxIcon.Information);
        //    }
        //    catch (Exception 错误信息)
        //    {
        //        MessageBox.Show(错误信息.Message,"发布",MessageBoxButtons.RetryCancel,MessageBoxIcon.Error);
        //    }
        //}

    }
}
